二值图像的膨胀运算及其VC实现

您所在的位置:网站首页 slots 数值 膨胀 二值图像的膨胀运算及其VC实现

二值图像的膨胀运算及其VC实现

2024-07-13 04:50| 来源: 网络整理| 查看: 265

 本文主要对二值图像膨胀的定义、原理以及VC下实现方法进行总结,并通过图像处理结果对图像膨胀操作的功能以及使用场合进行讨论。 1、定义

      参考冈萨雷斯的经典教材,对Z空间中的集合A和B,使用B对A进行膨胀,可定义为:

      

      可以理解膨胀过程为:首先得到膨胀结构元素相对于自身原点(按照本人的理解,对于对称的结构元素,原点为其对称中心,对于非对称的结构元素,原点由工程师根据相应的应用制定)的映射,然后根据此映射的z平移,如果结构元素的映射与集合A交集非空,则z属于膨胀后的集合。

      按照本人的理解,这个定义的意思就是从图像的第一个像素点开始依行遍历全部像素,在每个像素点上,移动结构元素B的映射的中心与其重合,然后判断此位置的结构元素是否有对A集合的覆盖,如果有,则保留这个点,否则对此点取反(按照如下的符号约定,即将改点灰度值设置为0)。

2、灰度值及逻辑约定

      1)二值图像中,所有黑色像素的集合是图像完整的形态学描述

      2)对于二值化后的图像:黑色表示灰度为0,白色表示灰度为255

      3)对于形态学结构元素:黑色代表1,白色表示0

      4)值为1的点组成完整的形态学结构元素

3、VC实现灰度图的二值膨胀

      首先贴上代码,然后再进行说明。作者实现的代码如下:

[cpp] view plain copy print ? /************************************************************************* * * \函数名称: *   DilationAlgorithm() * * \输入参数: *   pGrayMat:      二值图像数据 *   pErosionMat:   输出的腐蚀图像数据 *   width:         图形尺寸宽度 *   height:        图形尺寸高度 *   nWindows:      腐蚀操作结构元素尺寸,当nWindows=3时,如下: *                                  1    1    1 *                                  1    1    1 *                                  1    1    1 * \返回值: *   无 * \函数说明:  实现图像形态学算子-膨胀 * ************************************************************************/  void CDilationDlg::DilationAlgorithm(CvMat *pGrayMat, CvMat *pErosionMat, int width, int height, int nWindows)  {      int nSize = (int)(nWindows/2);      for(int i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3